package cn.zyjblogs.sms.task.vo;

import cn.zyjblogs.sms.task.constant.SourceType;
import cn.zyjblogs.sms.task.constant.TaskStatus;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Size;
import java.time.LocalDateTime;

/**
 * @author zhuyijun
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SmsTaskVO {
    @ApiModelProperty(value = "主键id")
    private String id;
    @ApiModelProperty(value = "模板id")
    private String templateId;

    /**
     * 执行状态
     * (手机号具体发送状态看sms_send_status表)
     * #TaskStatus{WAITING:等待执行;SUCCESS:执行成功;FAIL:执行失败}
     */
    @ApiModelProperty(value = "执行状态")
    private TaskStatus status;

    /**
     * 发送渠道
     * #SourceType{APP:应用;SERVICE:服务}
     */
    @ApiModelProperty(value = "发送渠道")
    private SourceType sourceType;

    /**
     * 主题
     */
    @ApiModelProperty(value = "主题")
    @Size(max = 255, message = "主题长度不能超过255")
    private String topic;

    /**
     * 参数
     * 需要封装为{‘key’:’value’, ...}格式且key必须有序
     */
    @ApiModelProperty(value = "参数")
    @Size(max = 1000, message = "参数长度不能超过500")
    private String templateParams;

    /**
     * 发送时间
     */
    @ApiModelProperty(value = "发送时间")
    private LocalDateTime sendTime;

    /**
     * 发送内容
     * 需要封装正确格式化: 您s好，张三，您有一个新的快递。
     */
    @ApiModelProperty(value = "发送内容")
    @Size(max = 1000, message = "发送内容长度不能超过500")
    private String content;

    /**
     * 是否草稿
     */
    @ApiModelProperty(value = "是否草稿")
    private Boolean draft;
    @ApiModelProperty(value = "创建人")
    private String createUserId;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

}
